package com.soilflow.info.service;

import com.soilflow.common.domain.LandInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.soilflow.common.domain.dto.LandInfoDto;
import com.soilflow.common.domain.dto.monthstatisticsDto;
import com.soilflow.common.domain.dto.totalstatistics;
import com.soilflow.common.domain.vo.LandInfoVo;
import com.soilflow.common.domain.vo.LandmarkVo;
import com.soilflow.common.domain.vo.TotalByTown;
import com.soilflow.system.service.ISysDeptService;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/** 
@author dhp 
@date 2023/4/17 - 16:33
*/
public interface LandInfoService extends IService<LandInfo>{

        /**查询【土地信息】
         *
         * @param id 【土地信息】主键
         * @return 【土地信息】
         */
        LandInfoVo selectLandInfoById(Long id);

        /**
         * 查询【土地信息】列表
         *
         * @param Dto 【土地信息】
         * @return 【土地信息】集合
         */
        List<LandInfoVo> selectLandInfoList(LandInfoDto Dto);

        List<LandInfoVo> selectAllLandList(LandInfoDto dto);

        /**
         * 新增【土地信息】
         *
         * @param Dto 【土地信息】
         * @return 结果
         */
        Boolean insertLandInfo(LandInfoDto Dto);

        /**
         * 修改【土地信息】
         *
         * @param Dto 【土地信息】
         * @return 结果
         */
        Boolean  updateLandInfo(LandInfoDto Dto);

        /**
         * 批量删除【土地信息】
         *
         * @param ids 需要删除的【土地信息】主键集合
         * @return 结果
         */
        Boolean deleteLandInfoByIds(List<Long> ids);

        /**
         * 查询【竞拍大厅信息】
         *
         * @param dto 【竞拍大厅信息】列表
         * @return 【竞拍大厅信息】
         */
        List<LandInfoVo> selectAuctionLandInfoList(LandInfoDto dto);


        /**
         * 查询【项目交易信息】
         *
         * @param dto 【项目交易信息】列表
         * @return 【项目交易信息】
         */
       List<LandInfoVo> selectRecetionLandInfoList(LandInfoDto dto);

        /**
         * 查询【竞拍大厅商品信息信息】
         *
         * @param auctionId 【竞拍大厅商品信息信息】详情表
         * @return 【竞拍大厅商品信息信息】
         */
        LandInfoVo selectLandInfoByAuctionId(Long auctionId);

    void exportExcel1(HttpServletResponse response) throws IOException;

    void importExcel(MultipartFile file, LandInfoService landInfoService, ISysDeptService deptService,LandClassifyService soilflowClassifyService) throws IOException;

    List<monthstatisticsDto> monthstatistics();

    int totalLand();

    totalstatistics totalstatistics();

    List<LandInfoVo> lists(LandInfoDto landInfo);

    List<LandInfoVo> massifList(LandInfoDto landInfo);

    List<LandInfoVo> buildingList(LandInfoDto landInfo);

    List<LandInfoVo> parkList(LandInfoDto landInfo);

    List<LandmarkVo> listsJingweidu();

    LandInfoVo searchLand(String landName);

    List<LandmarkVo> parkJingweidu();

    List<TotalByTown> totalByTown();

    List<TotalByTown> toVillage();
}
